The present disclosure relates generally to information handling systems, and more particularly to updating the basic input output system of an information handling system.
As the value and use of information continues to increase, individuals and businesses seek additional ways to acquire, process and store information. One option available to users is information handling systems. An information handling system (IHS) generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, IHSs may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in IHSs allow for IHSs to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, entertainment, and/or global communications. In addition, IHSs may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
A basic input/output system (BIOS) is generally a memory resident software program which includes instructions required to control computer peripherals such as the keyboard, display screen, disk drives, serial communications, and other functions without relying on a hard disk. The BIOS may be referred to as ‘firmware’ since it is typically stored in a non-volatile memory (NVM), e.g., flash memory. This ensures that the BIOS will be available to boot the system, even when there is a disk failure.
The BIOS also typically includes a SETUP code and a power-on-self-test (POST) program, both of which are well known to those skilled in the art. The SETUP code lets a user configure the computer system in a desired manner, e.g., by specifying whether certain features are enabled or disabled, and by specifying certain preferences. Computer system configuration generally refers to a process for setting, defining, and/or selecting hardware, software properties, parameters, or attributes of the system. The POST code tests and initializes various components, when the system is activated. Both the SETUP and POST codes are typically stored in NVM such as flash memory.
Presently, application software programs such as a remote BIOS update program (RBU) and/or a remote configuration interface (RCI) are available to update the BIOS either locally or remotely. The following U.S. patent describes various aspects of updating the BIOS remotely or locally, which is incorporated herein by reference: 1) U.S. Pat. No. 6,438,688 entitled ‘Method And Computer For Locally And Remotely Updating A Basic Input Output System (BIOS) Utilizing One Update File’.
However, implementing a change or modification to the BIOS may be cumbersome since the BIOS code often needs to be modified depending on the limitations of a particular chipset deployed in the IHS. For example, memory initialization code may need to be modified for every chipset supported. Special BIOS code may be included to put memory circuits in self refreshing mode during the initialization. Additionally, some chipsets used in server designs may initialize memory after an internal bus reset, e.g., after a peripheral component interconnect (PCI) bus reset.
Therefore, a need exists to improve updating the NVM of an IHS. Accordingly, it would be desirable to provide for remotely or locally updating the BIOS code in manner that is independent of the limitations of a chipset, absent the disadvantages found in the prior methods discussed above.